La kinect est constituée de deux capteurs. le
capteur RGV est une caméra normale à la résolution 640×480, l’autre
capteur, dit « de profondeur » est un télémètre constitué
d’une série de faisceaux infra-rouges. Le système interne de la kinect
calcul donc le temps parcouru par l’infrarouge pour déterminer la
distance de l’objet ou du sujet et donc la profondeur de champ.
Ce problème de la distance est un vrai problème avec la kinect mais à
ce prix-là il ne faut pas en attendre d’immenses performances, ce qui
reste assez paradoxal avec le fait que l’on est tout de même dans une
haute technologie, qui trouve son origine initiale dans des applications
militaires (voir plus bas mon développement sur la société PrimeSense).
D’après nos tests au studio la caméra capte jusque 8 mètres
péniblement, à 5 mètres ça reste exploitable, l’idéal est entre 1m50 et
3m50 max.
Ce problème de la distance avec la kinect est très bien expliqué ici par Jean-Marc Pelletier: http://cycling74.com/forums/topic.php?id=29987
En quelques mots Kinect est
la réponse à la Wii MotionPlus de Nintendo et à la Move de Sony
(PlayStation). Bien auparavant Sony avait commercialisé la caméra EyeToy
qui permettait également de jouer à des jeux grâce à des procédés de
détection de mouvement.
2.5 million d’unités ont été vendues au premier mois de commercialisation.
La kinect tient sa technologie de la société israélienne PrimeSense.
Cette de technologie, dite de Z-Cam ou caméra de profondeur est un
peu le graal de la robotique, qu’elle soit militaire ou civile.
Il est très probable que primesense ait tenté de répondre à des
projets militaires avec ce capteur. Toutefois, il est relativement
mauvais pour un capteur robotique (mais incroyablement peu cher!).
Il est reès probable qu’avec le succès de la kinect, ils se soient
totalement repositionnés sur le loisir et le jeu vidéo, comme semble
l’atteste leur site:
http://www.primesense.com/#3
Suite au succès de la kinect Primesense à créé une NPO, OpenNI pour
« Open Natural Interface » qui à pour objectif de promouvoir
les dispositifs et les applications qui reposent sur les procédés de
vision de la kinect.
A ce titre ils ont publié un SDK qui permet d’exploiter une partie
des capacités de détection de mouvement de leur capteur. Ce projet donne
des outils aux développeurs mais le code source n’est en partie pas
livrée, c’est juste un environnement de développement:
http://www.openni.org/
En revanche il essaient de fédérer une communauté en proposant aux
créateurs de projets de toutes natures (jeux, arts) de publier leurs
sources selon un guide de directives et une « charte ».
Certains ici ont peut-être reçu un courrier d’OpenNI dans ce sens.
Un objet [jit.openni] pour windows repose sur cette librairie
http://cycling74.com/forums/topic.php?id=34020
Par ailleurs un autre projet, en code source ouvert celui-ci s’est lancé par la communauté, OpenKinect:
http://openkinect.org/wiki/Main_Page
L’objet [jit.freenect.grab] pour Mac
http://jmpelletier.com/freenect/
est basé sur la librairie Libfreenect qui est issue du projet
OpenKinect. Nombre d’objets ou librairies dans d’autres environnements
reposent sur cette librairie véritablement ouverte et collaborative.
D’autres ont choisi OpenNI.
Quelques autres sources
• applications de calibrage très complète pour Linux, Mac, Windows
http://nicolas.burrus.name/index.php/Research/KinectRgbDemoV6?from=Research.KinectRgbDemoV5
• estimation de posture
TOHM JUDSON a posté un tutoriel pour relier OpenNI à Max en OSC pour faire du « Skeleton tracking »
http://tohmjudson.com/?p=30
C’est un peu fastidieux car il y a pas mal de chose à installer via
le terminal mais c’est très bien expliqué et ça fonctionne bien.
J’ai réalisé un test ici:
http://www.youtube.com/user/Derrgis#p/u/8/F6KHGFOknvc
Il y aussi un développeur qui tout récemment a créé SYNAPSE, une
application Mac qui envoie la position des parties du corps à Max,
Quartz Composer ou même Live: http://synapsekinect.tumblr.com/post/6307790318/synapse-for-kinect